{
        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
        HID_RI_USAGE(8, 0x02), /* Mouse */
 {
        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
        HID_RI_USAGE(8, 0x02), /* Mouse */
 {
        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
        HID_RI_USAGE(8, 0x06), /* Keyboard */
 {
        HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
        HID_RI_USAGE(8, 0x06), /* Keyboard */
  *  and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting
  *  a configuration so that the host may correctly communicate with the USB device.
  */
  *  and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting
  *  a configuration so that the host may correctly communicate with the USB device.
  */
  *  the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate
  *  via the language ID table available at USB.org what languages the device supports for its string descriptors.
  */
  *  the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate
  *  via the language ID table available at USB.org what languages the device supports for its string descriptors.
  */
  *  form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
  *  Descriptor.
  */
  *  form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
  *  Descriptor.
  */