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)
                    || recentKeysym[keyCode]
                    || keysym_from_key_identifier(key, location); // keyCode is still more reliable for keyup when dead keys are in use

        // Keyup is as reliable as it will ever be
        this.reliable = true;

    }
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