# hidtools.hut module

HUT = {0: {0: Undefined}, 1: {0: Undefined, 1: Pointer, 2: Mouse, 4: Joystick, 5: Game Pad, 6: Keyboard, 7: Keypad, 8: Multi Axis, 10: Water Cooling Device, 11: Computer Chassis Device, 12: Wireless Radio Controls, 13: Portable Device Control, 14: System Multi-Axis Controller, 15: Spatial Controller, 16: Assistive Control, 48: X, 49: Y, 50: Z, 51: Rx, 52: Ry, 53: Rz, 54: Slider, 55: Dial, 56: Wheel, 57: Hat switch, 58: Counted Buffer, 59: Byte Count, 60: Motion, 61: Start, 62: Select, 64: Vx, 65: Vy, 66: Vz, 67: Vbrx, 68: Vbry, 69: Vbrz, 70: Vno, 71: Feature, 72: Resolution Multiplier, 73: Qx, 74: Qy, 75: Qz, 76: Qw, 128: System Control, 129: System Power Down, 130: System Sleep, 131: System Wake Up, 132: System Context Menu, 133: System Main Menu, 134: System App Menu, 135: System Help Menu, 136: System Menu Exit, 137: System Menu Select, 138: System Menu Right, 139: System Menu Left, 140: System Menu Up, 141: System Menu Down, 142: System Cold Restart, 143: System Warm Restart, 144: D-Pad Up, 145: D-Pad Down, 146: D-Pad Right, 147: D-Pad Left, 148: Index Trigger, 149: Palm Trigger, 150: Thumbstick, 151: System Function Shift, 152: System Function Shift Lock, 153: System Function Shift Lock Indicator, 154: System Dismiss Notification, 160: System Dock, 161: System UnDock, 162: System Setup, 163: System Break, 164: System Debugger Break, 165: Application Break, 166: Application Debugger Break, 167: System Speaker Mute, 168: System Hibernate, 176: System Display Invert, 177: System Display Internal, 178: System Display External, 179: System Display Both, 180: System Display Dual, 181: System Display Toggle Internal External, 182: System Display Swap Primary Secondary, 183: System Display LCDAuto Scale, 192: Sensor Zone, 193: RPM, 194: Coolant Level, 195: Coolant Critical Level, 196: Coolant Pump, 197: Chassis Enclosure, 198: Wireless Radio Button, 199: Wireless Radio LED, 200: Wireless Radio Slider Switch, 201: System Display Rotation Lock Button, 202: System Display Rotation Lock Slider Switch, 203: Control Enable}, 2: {0: Undefined, 1: Flight Simulation Device, 2: Automobile Simulation Device, 3: Tank Simulation Device, 4: Spaceship Simulation Device, 5: Submarine Simulation Device, 6: Sailing Simulation Device, 7: Motorcycle Simulation Device, 8: Sports Simulation Device, 9: Airplane Simulation Device, 10: Helicopter Simulation Device, 11: Magic Carpet Simulation Device, 12: Bicycle, 32: Flight Control Stick, 33: Flight Stick, 34: Cyclic Control, 35: Cyclic Trim, 36: Flight Yoke, 37: Track Control, 38: Driving Control, 176: Aileron, 177: Aileron Trim, 178: Anti-Torque Control, 179: Auto-pilot enable, 180: Chaff Release, 181: Collective Control, 182: Dive Brake, 183: Electronic Counter Measures, 184: Elevator, 185: Elevator Trim, 186: Rudder, 187: Throttle, 188: Flight Communication, 189: Flare Release, 190: Landing Gear, 191: Toe Brake, 192: Trigger, 193: Weapons Arm, 194: Weapons Select, 195: Wing Flaps, 196: Accelerator, 197: Brake, 198: Clutch, 199: Shifter, 200: Steering, 201: Turret Direction, 202: Barrel Elevation, 203: Dive Plane, 204: Ballast, 205: Bicycle Crank, 206: Handle Bars, 207: Front Brake, 208: Rear Brake}, 3: {0: Unidentified, 1: Belt, 2: Body Suit, 3: Flexor, 4: Glove, 5: Head Tracker, 6: Head Mounted Display, 7: Hand Tracker, 8: Oculometer, 9: Vest, 10: Animatronic Device, 32: Stereo Enable, 33: Display Enable}, 4: {0: Unidentified, 1: Baseball Bat, 2: Golf Club, 3: Rowing Machine, 4: Treadmill, 48: Oar, 49: Slope, 50: Rate, 51: Stick Speed, 52: Stick Face Angle, 53: Stick Heel/Toe, 54: Stick Follow Through, 55: Stick Tempo, 56: Stick Type, 57: Stick Height, 80: Putter, 81: 1 Iron, 82: 2 Iron, 83: 3 Iron, 84: 4 Iron, 85: 5 Iron, 86: 6 Iron, 87: 7 Iron, 88: 8 Iron, 89: 9 Iron, 90: 10 Iron, 91: 11 Iron, 92: Sand Wedge, 93: Loft Wedge, 94: Power Wedge, 95: 1 Wood, 96: 3 Wood, 97: 5 Wood, 98: 7 Wood, 99: 9 Wood}, 5: {0: Undefined, 1: 3D Game Controller, 2: Pinball Device, 3: Gun Device, 32: Point of View, 33: Turn Right/Left, 34: Pitch Forward/Backward, 35: Roll Right/Left, 36: Move Right/Left, 37: Move Forward/Backward, 38: Move Up/Down, 39: Lean Right/Left, 40: Lean Forward/Backward, 41: Height of POV, 42: Flipper, 43: Secondary Flipper, 44: Bump, 45: New Game, 46: Shoot Ball, 47: Player, 48: Gun Bolt, 49: Gun Clip, 50: Gun Selector, 51: Gun Single Shot, 52: Gun Burst, 53: Gun Automatic, 54: Gun Safety, 55: Gamepad Fire/Jump, 57: Gamepad Trigger, 58: Form-fitting gamepad}, 6: {0: Unidentified, 1: Background Controls, 32: Battery Strength, 33: Wireless Channel, 34: Wireless ID, 35: Discover Wireless Control, 36: Security Code Character Entered, 37: Security Code Character Erased, 38: Security Code Cleared, 39: Sequence ID, 40: Sequence ID Reset, 41: RF Signal Strength, 42: Software Version, 43: Protocol Version, 44: Hardware Version, 45: Major, 46: Minor, 47: Revision, 48: Handedness, 49: Either Hand, 50: Left Hand, 51: Right Hand, 52: Both Hands, 64: Grip Pose Offset, 65: Pointer Pose Offset}, 7: {1: ErrorRollOver, 2: POSTFail, 3: ErrorUndefine, 4: a and A, 5: b and B, 6: c and C, 7: d and D, 8: e and E, 9: f and F, 10: g and G, 11: h and H, 12: i and I, 13: j and J, 14: k and K, 15: l and L, 16: m and M, 17: n and N, 18: o and O, 19: p and P, 20: q and Q, 21: r and R, 22: s and S, 23: t and T, 24: u and U, 25: v and V, 26: w and W, 27: x and X, 28: y and Y, 29: z and Z, 30: 1 and !, 31: 2 and @, 32: 3 and #, 33: 4 and $, 34: 5 and %, 35: 6 and ^, 36: 7 and &, 37: 8 and *, 38: 9 and (, 39: 0 and ), 40: Return (ENTER), 41: ESCAPE, 42: DELETE (Backspace), 43: Tab, 44: Spacebar, 45: - and (underscore), 46: = and +, 47: [ and {, 48: ] and }, 49: \ and |, 50: Non-US # and ~, 51: ; and :, 52: ' and ", 53: Grave Accent and Tilde, 54: Keyboard, and <, 55: . and >, 56: / and ?, 57: Caps Lock, 58: F1, 59: F2, 60: F3, 61: F4, 62: F5, 63: F6, 64: F7, 65: F8, 66: F9, 67: F10, 68: F11, 69: F12, 70: PrintScreen, 71: Scroll Lock, 72: Pause, 73: Insert, 74: Home, 75: PageUp, 76: Delete Forward, 77: End, 78: PageDown, 79: RightArrow, 80: LeftArrow, 81: DownArrow, 82: UpArrow, 83: Keypad Num Lock and Clear, 84: Keypad /, 85: Keypad *, 86: Keypad -, 87: Keypad +, 88: Keypad ENTER, 89: Keypad 1 and End, 90: Keypad 2 and Down Arrow, 91: Keypad 3 and PageDn, 92: Keypad 4 and Left Arrow, 93: Keypad 5, 94: Keypad 6 and Right Arrow, 95: Keypad 7 and Home, 96: Keypad 8 and Up Arrow, 97: Keypad 9 and PageUp, 98: Keypad 0 and Insert, 99: Keypad . and Delete, 100: Non-US \ and |, 101: Application, 102: Power, 103: Keypad =, 104: F13, 105: F14, 106: F15, 107: F16, 108: F17, 109: F18, 110: F19, 111: F20, 112: F21, 113: F22, 114: F23, 115: F24, 116: Execute, 117: Help, 118: Menu, 119: Select, 120: Stop, 121: Again, 122: Undo, 123: Cut, 124: Copy, 125: Paste, 126: Find, 127: Mute, 128: Volume Up, 129: Volume Down, 130: Locking Caps Lock, 131: Locking Num Lock, 132: Locking Scroll Lock, 133: Keypad Comma, 134: Keypad Equal Sign, 135: Kanji1, 136: Kanji2, 137: Kanji3, 138: Kanji4, 139: Kanji5, 140: Kanji6, 141: Kanji7, 142: Kanji8, 143: Kanji9, 144: LANG1, 145: LANG2, 146: LANG3, 147: LANG4, 148: LANG5, 149: LANG6, 150: LANG7, 151: LANG8, 152: LANG9, 153: Alternate Erase, 154: SysReq/Attention, 155: Cancel, 156: Clear, 157: Prior, 158: Return, 159: Separator, 160: Out, 161: Oper, 162: Clear/Again, 163: CrSel/Props, 164: ExSel, 224: LeftControl, 225: LeftShift, 226: LeftAlt, 227: Left GUI, 228: RightControl, 229: RightShift, 230: RightAlt, 231: Right GUI}, 8: {0: Undefined, 1: Num Lock, 2: Caps Lock, 3: Scroll Lock, 4: Compose, 5: Kana, 6: Power, 7: Shift, 8: Do Not Disturb, 9: Mute, 10: Tone Enable, 11: High Cut Filter, 12: Low Cut Filter, 13: Equalizer Enable, 14: Sound Field On, 15: Surround field On, 16: Repeat, 17: Stereo, 18: Sampling Rate Detect, 19: Spinning, 20: CAV, 21: CLV, 22: Recording Format Detect, 23: Off-Hook, 24: Ring, 25: Message Waiting, 26: Data Mode, 27: Battery Operation, 28: Battery OK, 29: Battery Low, 30: Speaker, 31: Head Set, 32: Hold, 33: Microphone, 34: Coverage, 35: Night Mode, 36: Send Calls, 37: Call Pickup, 38: Conference, 39: Stand-by, 40: Camera On, 41: Camera Off, 42: On-Line, 43: Off-Line, 44: Busy, 45: Ready, 46: Paper-Out, 47: Paper-Jam, 48: Remote, 49: Forward, 50: Reverse, 51: Stop, 52: Rewind, 53: Fast Forward, 54: Play, 55: Pause, 56: Record, 57: Error, 58: Usage Selected Indicator, 59: Usage In Use Indicator, 60: Usage Multi Mode Indicator, 61: Indicator On, 62: Indicator Flash, 63: Indicator Slow Blink, 64: Indicator Fast Blink, 65: Indicator Off, 66: Flash On Time, 67: Slow Blink On Time, 68: Slow Blink Off Time, 69: Fast Blink On Time, 70: Fast Blink Off Time, 71: Usage Indicator Color, 72: Indicator Red, 73: Indicator Green, 74: Indicator Amber, 75: Generic Indicator, 76: System Suspend, 77: External Power Connected, 78: Indicator Blue, 79: Indicator Orange, 80: Good Status, 81: Warning Status, 82: RGBLED, 83: Red LEDChannel, 84: Greed LEDChannel, 85: Blue LEDChannel, 86: LEDIntensity, 96: Player Indicator, 97: Player 1, 98: Player 2, 99: Player 3, 100: Player 4, 101: Player 5, 102: Player 6, 103: Player 7, 104: Player 8}, 9: {0: No Buttons Pressed}, 10: {0: Unused}, 11: {0: Unassigned, 1: Phone, 2: Answering Machine, 3: Message Controls, 4: Handset, 5: Headset, 6: Telephony Key Pad, 7: Programmable Button, 32: Hook Switch, 33: Flash, 34: Feature, 35: Hold, 36: Redial, 37: Transfer, 38: Drop, 39: Park, 40: Forward Calls, 41: Alternate Function, 42: Line OSC, 43: Speaker Phone, 44: Conference, 45: Ring Enable, 46: Ring Select, 47: Phone Mute, 48: Caller ID, 49: Send, 80: Speed Dial, 81: Store Number, 82: Recall Number, 83: Phone Directory, 112: Voice Mail, 113: Screen Calls, 114: Do Not Disturb, 115: Message, 116: Answer On/Off, 144: Inside Dial Tone, 145: Outside Dial Tone, 146: Inside Ring Tone, 147: Outside Ring Tone, 148: Priority Ring Tone, 149: Inside Ringback, 150: Priority Ringback, 151: Line Busy Tone, 152: Reorder Tone, 153: Call Waiting Tone, 154: Confirmation Tone 1, 155: Confirmation Tone 2, 156: Tones Off, 157: Outside Ringback, 158: Ringer, 176: Phone Key 0, 177: Phone Key 1, 178: Phone Key 2, 179: Phone Key 3, 180: Phone Key 4, 181: Phone Key 5, 182: Phone Key 6, 183: Phone Key 7, 184: Phone Key 8, 185: Phone Key 9, 186: Phone Key Star, 187: Phone Key Pound, 188: Phone Key A, 189: Phone Key B, 190: Phone Key C, 191: Phone Key D, 192: Phone Call History Key, 193: Phone Caller ID Key, 194: Phone Settings Key, 240: Host Control, 241: Host Available, 242: Host Call Active, 243: Activate Handset Audio, 244: Ring Type, 245: Re-dialable Phone Number, 248: Stop Ring Tone, 249: PSTN Ring Tone, 250: Host Ring Tone, 251: Alert Sound Error, 252: Alert Sound Confirm, 253: Alert Sound Notification, 254: Silent Ring, 264: Email Message Waiting, 265: oicemail Message Waiting, 266: ost Hold, 272: Incoming Call History Count, 273: Outgoing Call History Count, 274: Incoming Call History, 275: Outgoing Call History, 276: Phone Locale, 320: Phone Time Second, 321: Phone Time Minute, 322: Phone Time Hour, 323: Phone Date Day, 324: Phone Date Month, 325: Phone Date Year, 326: Handset Nickname, 327: Address Book ID, 330: Call Duration, 331: Dual Mode Phone}, 12: {1: Consumer Control, 2: Numeric Key Pad, 3: Programmable Buttons, 4: Microphone, 5: Headphone, 6: Graphic Equalizer, 32: +10, 33: +100, 34: AM/PM, 48: Power, 49: Reset, 50: Sleep, 51: Sleep After, 52: Sleep Mode, 53: Illumination, 54: Function Buttons, 64: Menu, 65: Menu Pick, 66: Menu Up, 67: Menu Down, 68: Menu Left, 69: Menu Right, 70: Menu Escape, 71: Menu Value Increase, 72: Menu Value Decrease, 96: Data On Screen, 97: Closed Caption, 98: Closed Caption Select, 99: VCR/TV, 100: Broadcast Mode, 101: Snapshot, 102: Still, 103: Picture-in-Picture Toggle, 104: Picture-in-Picture Swap, 105: Red Menu Button, 106: Green Menu Button, 107: Blue Menu Button, 108: Yellow Menu Button, 109: Aspect, 110: 3D Mode Select, 111: Display Brightness Increment, 112: Display Brightness Decrement, 113: Display Brightness, 114: Display Backlight Toggle, 115: Display Set Brightness to Minimum, 116: Display Set Brightness to Maximum, 117: Display Set Auto Brightness, 118: Camera Access Enabled, 119: Camera Access Disabled, 120: Camera Access Toggle, 121: Keyboard Brightness Increment, 122: Keyboard Brightness Decrement, 123: Keyboard Backlight Set Level, 124: Keyboard Backlight OOC, 125: Keyboard Backlight Set Minimum, 126: Keyboard Backlight Set Maximum, 127: Keyboard Backlight Auto, 128: Selection, 129: Assign Selection, 130: Mode Step, 131: Recall Last, 132: Enter Channel, 133: Order Movie, 134: Channel, 135: Media Selection, 136: Media Select Computer, 137: Media Select TV, 138: Media Select WWW, 139: Media Select DVD, 140: Media Select Telephone, 141: Media Select Program Guide, 142: Media Select Video Phone, 143: Media Select Games, 144: Media Select Messages, 145: Media Select CD, 146: Media Select VCR, 147: Media Select Tuner, 148: Quit, 149: Help, 150: Media Select Tape, 151: Media Select Cable, 152: Media Select Satellite, 153: Media Select Security, 154: Media Select Home, 155: Media Select Call, 156: Channel Increment, 157: Channel Decrement, 158: Media Select SAP, 160: VCR Plus, 161: Once, 162: Daily, 163: Weekly, 164: Monthly, 176: Play, 177: Pause, 178: Record, 179: Fast Forward, 180: Rewind, 181: Scan Next Track, 182: Scan Previous Track, 183: Stop, 184: Eject, 185: Random Play, 186: Select Disc, 187: Enter Disc, 188: Repeat, 189: Tracking, 190: Track Normal, 191: Slow Tracking, 192: Frame Forward, 193: Frame Back, 194: Mark, 195: Clear Mark, 196: Repeat From Mark, 197: Return To Mark, 198: Search Mark Forward, 199: Search Mark Backwards, 200: Counter Reset, 201: Show Counter, 202: Tracking Increment, 203: Tracking Decrement, 204: Stop/Eject, 205: Play/Pause, 206: Play/Skip, 207: Voice Command, 208: Invoke Capture Interface, 209: Start or Stop Game Recording, 210: Historical Game Capture, 211: Capture Game Screenshot, 212: Show or Hide Recording Indicator, 213: Start or Stop Microphone Capture, 214: Start or Stop Camera Capture, 215: Start or Stop Game Broadcast, 224: Volume, 225: Balance, 226: Mute, 227: Bass, 228: Treble, 229: Bass Boost, 230: Surround Mode, 231: Loudness, 232: MPX, 233: Volume Up, 234: Volume Down, 240: Speed Select, 241: Playback Speed, 242: Standard Play, 243: Long Play, 244: Extended Play, 245: Slow, 256: Fan Enable, 257: Fan Speed, 258: Light Enable, 259: Light Illumination Level, 260: Climate Control Enable, 261: Room Temperature, 262: Security Enable, 263: Fire Alarm, 264: Police Alarm, 265: Proximity, 266: Motion, 267: Duress Alarm, 268: Holdup Alarm, 269: Medical Alarm, 336: Balance Right, 337: Balance Left, 338: Bass Increment, 339: Bass Decrement, 340: Treble Increment, 341: Treble Decrement, 352: Speaker System, 353: Channel Left, 354: Channel Right, 355: Channel Center, 356: Channel Front, 357: Channel Center Front, 358: Channel Side, 359: Channel Surround, 360: Channel Low Freq Enhancement, 361: Channel Top, 362: Channel Unknown, 368: Sub-channel, 369: Sub-channel Increment, 370: Sub-channel Decrement, 371: Alternate Audio Increment, 372: Alternate Audio Decrement, 384: Application Launch Buttons, 385: AL Launch Button Config Tool, 386: AL Programmable Button Config, 387: AL Consumer Control Config, 388: AL Word Processor, 389: AL Text Editor, 390: AL Spreadsheet, 391: AL Graphics Editor, 392: AL Presentation App, 393: AL Database App, 394: AL Email Reader, 395: AL Newsreader, 396: AL Voicemail, 397: AL Contacts/Address Book, 398: AL Calendar/Schedule, 399: AL Task/Project Manager, 400: AL Log/Journal/Timecard, 401: AL Checkbook/Finance, 402: AL Calculator, 403: AL A/VCapture/Playback, 404: AL Local Machine Browser, 405: AL LAN/WANBrowser, 406: AL Internet Browser, 407: AL Remote Networking/ISPConnect, 408: AL Network Conference, 409: AL Network Chat, 410: AL Telephony/Dialer, 411: AL Logon, 412: AL Logoff, 413: AL Logon/Logoff, 414: AL Terminal Lock/Screensaver, 415: AL Control Panel, 416: AL Command Line Processor/Run, 417: AL Process/Task Manager, 418: AL Select Task/Application, 419: AL Next Task/Application, 420: AL Previous Task/Application, 421: AL Preempt Halt Task/Application, 422: AL Integrated Help Center, 423: AL Documents, 424: AL Thesaurus, 425: AL Dictionary, 426: AL Desktop, 427: AL Spell Check, 428: AL Grammar Check, 429: AL Wireless Status, 430: AL Keyboard Layout, 431: AL Virus Protection, 432: AL Encryption, 433: AL Screen Saver, 434: AL Alarms, 435: AL Clock, 436: AL File Browser, 437: AL Power Status, 438: AL Image Browser, 439: AL Audio Browser, 440: AL Movie Browser, 441: AL Digital Rights Manager, 442: AL Digital Wallet, 444: AL Instant Messaging, 445: AL OEMFeatures Tips Tuto Browser, 446: AL OEMHelp, 447: AL Online Community, 448: AL Entertainment Content Browser, 449: AL Online Shopping Browser, 450: AL Smart Card Information/Help, 451: AL Market Monitor Finance Browser, 452: AL Customized Corp News Browser, 453: AL Online Activity Browser, 454: AL Research/Search Browser, 455: AL Audio Player, 456: AL Message Status, 457: AL Contact Sync, 512: Generic GUIApplication Controls, 513: AC New, 514: AC Open, 515: AC Close, 516: AC Exit, 517: AC Maximize, 518: AC Minimize, 519: AC Save, 520: AC Print, 521: AC Properties, 538: AC Undo, 539: AC Copy, 540: AC Cut, 541: AC Paste, 542: AC Select All, 543: AC Find, 544: AC Findand Replace, 545: AC Search, 546: AC Go To, 547: AC Home, 548: AC Back, 549: AC Forward, 550: AC Stop, 551: AC Refresh, 552: AC Previous Link, 553: AC Next Link, 554: AC Bookmarks, 555: AC History, 556: AC Subscriptions, 557: AC Zoom In, 558: AC Zoom Out, 559: AC Zoom, 560: AC Full Screen View, 561: AC Normal View, 562: AC View Toggle, 563: AC Scroll Up, 564: AC Scroll Down, 565: AC Scroll, 566: AC Pan Left, 567: AC Pan Right, 568: AC Pan, 569: AC New Window, 570: AC Tile Horizontally, 571: AC Tile Vertically, 572: AC Format, 573: AC Edit, 574: AC Bold, 575: AC Italics, 576: AC Underline, 577: AC Strikethrough, 578: AC Subscript, 579: AC Superscript, 580: AC All Caps, 581: AC Rotate, 582: AC Resize, 583: AC Fliphorizontal, 584: AC Flip Vertical, 585: AC Mirror Horizontal, 586: AC Mirror Vertical, 587: AC Font Select, 588: AC Font Color, 589: AC Font Size, 590: AC Justify Left, 591: AC Justify Center H, 592: AC Justify Right, 593: AC Justify Block H, 594: AC Justify Top, 595: AC Justify Center V, 596: AC Justify Bottom, 597: AC Justify Block V, 598: AC Indent Decrease, 599: AC Indent Increase, 600: AC Numbered List, 601: AC Restart Numbering, 602: AC Bulleted List, 603: AC Promote, 604: AC Demote, 605: AC Yes, 606: AC No, 607: AC Cancel, 608: AC Catalog, 609: AC Buy/Checkout, 610: AC Addto Cart, 611: AC Expand, 612: AC Expand All, 613: AC Collapse, 614: AC Collapse All, 615: AC Print Preview, 616: AC Paste Special, 617: AC Insert Mode, 618: AC Delete, 619: AC Lock, 620: AC Unlock, 621: AC Protect, 622: AC Unprotect, 623: AC Attach Comment, 624: AC Delete Comment, 625: AC View Comment, 626: AC Select Word, 627: AC Select Sentence, 628: AC Select Paragraph, 629: AC Select Column, 630: AC Select Row, 631: AC Select Table, 632: AC Select Object, 633: AC Redo/Repeat, 634: AC Sort, 635: AC Sort Ascending, 636: AC Sort Descending, 637: AC Filter, 638: AC Set Clock, 639: AC View Clock, 640: AC Select Time Zone, 641: AC Edit Time Zones, 642: AC Set Alarm, 643: AC Clear Alarm, 644: AC Snooze Alarm, 645: AC Reset Alarm, 646: AC Synchronize, 647: AC Send/Receive, 648: AC Send To, 649: AC Reply, 650: AC Reply All, 651: AC Forward Msg, 652: AC Send, 653: AC Attach File, 654: AC Upload, 655: AC Download(Save Target As), 656: AC Set Borders, 657: AC Insert Row, 658: AC Insert Column, 659: AC Insert File, 660: AC Insert Picture, 661: AC Insert Object, 662: AC Insert Symbol, 663: AC Saveand Close, 664: AC Rename, 665: AC Merge, 666: AC Split, 667: AC Disribute Horizontally, 668: AC Distribute Vertically, 669: AC Next Keyboard Layout Select, 670: AC Navigation Guidance, 671: AC Desktop Show All Windows, 672: ACSoft Key Left, 673: ACSoft Key Right, 688: AC Idle Keep Alive, 704: Extended Keyboard Attributes Collection, 705: Keyboard Form Factor, 706: Keyboard Key Type, 707: Keyboard Physical Layout, 708: Vendor-Specific Keyboard Physical Layout, 709: Keyboard IETF Language Tag Index, 710: Implemented Keyboard Input AssistControls, 711: Keyboard Input Assist Previous, 712: Keyboard Input Assist NextS, 713: Keyboard Input Assist Previous Group, 714: Keyboard Input Assist NextGroup, 715: Keyboard Input Assist Accept, 716: Keyboard Input Assist Cancel, 1280: Contact Edited, 1281: Contact Added, 1282: Contact Record Active, 1283: Contact Index, 1284: Contact Nickname, 1285: Contact First Name, 1286: Contact Last Name, 1287: Contact Full Name, 1288: Contact Phone Number Personal, 1289: Contact Phone Number Business, 1290: Contact Phone Number Mobile, 1291: Contact Phone Number Pager, 1292: Contact Phone Number Fax, 1293: Contact Phone Number Other, 1294: Contact Email Personal, 1295: Contact Email Business, 1296: Contact Email Other, 1297: Contact Email Main, 1298: Contact Speed Dial Number, 1299: Contact Status Flag, 1300: Contact Misc.}, 13: {0: Undefined, 1: Digitizer, 2: Pen, 3: Light Pen, 4: Touch Screen, 5: Touch Pad, 6: White Board, 7: Coordinate Measuring Machine, 8: 3-D Digitizer, 9: Stereo Plotter, 10: Articulated Arm, 11: Armature, 12: Multiple Point Digitizer, 13: Free Space Wand, 14: Device Configuration, 15: Capacitive Heat Map Digitizer, 32: Stylus, 33: Puck, 34: Finger, 35: Device Settings, 36: Character Gesture, 48: Tip Pressure, 49: Barrel Pressure, 50: In Range, 51: Touch, 52: Untouch, 53: Tap, 54: Quality, 55: Data Valid, 56: Transducer Index, 57: Tablet Function Keys, 58: Program Change Keys, 59: Battery Strength, 60: Invert, 61: X Tilt, 62: Y Tilt, 63: Azimuth, 64: Altitude, 65: Twist, 66: Tip Switch, 67: Secondary Tip Switch, 68: Barrel Switch, 69: Eraser, 70: Tablet Pick, 71: Confidence, 72: Width, 73: Height, 81: Contact Id, 82: Inputmode, 83: Device Index, 84: Contact Count, 85: Contact Max, 86: Scan Time, 87: Surface Switch, 88: Button Switch, 89: Button Type, 90: Secondary Barrel Switch, 91: Transducer Serial Number, 92: Preferred Inking Color, 93: Preferred Color is Locked, 94: Preferred Line Width, 95: Preferred Line Width is Locked, 97: Gesture Character Quality, 98: Character Gesture Data Length, 99: Character Gesture Data, 100: Gesture Character Encoding, 101: UTF8 Character Gesture Encoding Sel, 102: UTF16 Little Endian Character Gesture Encoding Sel, 103: UTF16 Big Endian Character Gesture Encoding Sel, 104: UTF32 Little Endian Character Gesture Encoding, 105: UTF32 Big Endian Character Gesture Encoding, 106: Gesture Character Enable, 107: Capacitive Heat Map Protocol Version, 108: Capacitive Heat Map Frame Data, 112: Preferred Line Style, 113: Preferred Line Style is Locked, 114: Ink, 115: Pencil, 116: Highlighter, 117: Chisel Marker, 118: Brush, 119: No preference, 128: Digitizer Diagnostic, 129: Digitizer Error, 130: Err Normal Status, 131: Err Transducers Exceeded, 132: Err Full Trans Features Unavail, 133: Err Charge Low, 144: Transducer Software Info., 145: Transducer Vendor ID, 146: Transducer Product ID, 147: Device Supported Protocols, 148: Transducer Supported Protocols, 149: No Protocol, 150: Wacom AES Protocol, 151: USI Protocol, 152: Microsoft Pen Protocol, 160: Supported Report Rates, 161: Report Rate, 162: Transducer Connected, 163: Switch Disabled, 164: Switch Unimplemented, 165: Transducer Switches}, 14: {1: Simple Haptic Controller, 16: Waveform, 17: Duration, 32: Auto Trigger, 33: Manual Trigger, 34: Auto Trigger Associated Control, 35: Intensity, 36: Repeat Count, 37: Retrigger Period, 38: Waveform Vendor Page, 39: Waveform Vendor ID, 40: Waveform Cutoff Time, 4097: WAVEFORM_NONE, 4098: WAVEFORM_STOP, 4099: WAVEFORM_CLICK, 4100: WAVEFORM_BUZZ_CONTINUOUS, 4101: WAVEFORM_RUMBLE_CONTINUOUS, 4102: WAVEFORM_PRESS, 4103: WAVEFORM_RELEASE}, 16: {}, 18: {1: Eye Tracker, 2: Head Tracker, 16: Tracking Data, 17: Capabilities, 18: Configuration, 19: Status, 20: Control, 32: Sensor Timestamp, 33: Position X, 34: Position Y, 35: Position Z, 36: Gaze Point, 37: Left Eye Position, 38: Right Eye Position, 39: Head Position, 40: Head Direction Point, 41: Rotation about X axis, 42: Rotation about Y axis, 43: Rotation about Z axis, 256: Tracker Quality, 257: Minimum Tracking Distance, 258: Optimum Tracking Distance, 259: Maximum Tracking Distance, 260: Maximum Screen Plane Width, 261: Maximum Screen Plane Height, 512: Display Manufacturer ID, 513: Display Product ID, 514: Display Serial Number, 515: Display Manufacturer Date, 516: Calibrated Screen Width, 517: Calibrated Screen Height, 768: Sampling Frequency, 769: Configuration Status, 1024: Device Mode Request}, 20: {0: Undefined, 1: Alphanumeric Display, 2: Auxiliary Display, 32: Display Attributes Report, 33: ASCII Character Set, 34: Data Read Back, 35: Font Read Back, 36: Display Control Report, 37: Clear Display, 38: Display Enable, 39: Screen Saver Delay, 40: Screen Saver Enable, 41: Vertical Scroll, 42: Horizontal Scroll, 43: Character Report, 44: Display Data, 45: Display Status, 46: Stat Not Ready, 47: Stat Ready, 48: Err Not a loadable character, 49: Err Font data cannot be read, 50: Cursor Position Report, 51: Row, 52: Column, 53: Rows, 54: Columns, 55: Cursor Pixel Positioning, 56: Cursor Mode, 57: Cursor Enable, 58: Cursor Blink, 59: Font Report, 60: Font Data, 61: Character Width, 62: Character Height, 63: Character Spacing Horizontal, 64: Character Spacing Vertical, 65: Unicode Character Set, 66: Font 7-Segment, 67: 7-Segment Direct Map, 68: Font 14-Segment, 69: 14-Segment Direct Map, 70: Display Brightness, 71: Display Contrast, 72: Character Attribute, 73: Attribute Readback, 74: Attribute Data, 75: Char Attr Enhance, 76: Char Attr Underline, 77: Char Attr Blink, 128: Bitmap Size X, 129: Bitmap Size Y, 130: Max Blit Size, 131: Bit Depth Format, 132: Display Orientation, 133: Palette Report, 134: Palette Data Size, 135: Palette Data Offset, 136: Palette Data, 138: Blit Report, 139: Blit Rectangle X1, 140: Blit Rectangle Y1, 141: Blit Rectangle X2, 142: Blit Rectangle Y2, 143: Blit Data, 144: Soft Button, 145: Soft Button ID, 146: Soft Button Side, 147: Soft Button Offset1, 148: Soft Button Offset2, 149: Soft Button Report, 194: Soft Keys, 204: Display Data Extensions, 207: Character Mapping, 221: Unicode Equivalent, 223: Character Page Mapping, 255: Request Report}, 32: {0: Undefined, 1: Sensor, 16: Biometric, 17: Biometric Human Presence, 18: Biometric Human Proximity, 19: Biometric Human Touch, 20: Biometric: Blood Pressure, 21: Biometric: Body Temperature, 22: Biometric: Heart Rate, 23: Biometric: Heart Rate Variability, 24: Biometric: Peripheral Oxygen Saturation, 25: Biometric: Respiratory Rate, 32: Electrical, 33: Electrical: Capacitance, 34: Electrical: Current, 35: Electrical: Power, 36: Electrical: Inductance, 37: Electrical: Resistance, 38: Electrical: Voltage, 39: Electrical: Potentiometer, 40: Electrical: Frequency, 41: Electrical: Period, 48: Environmental, 49: Environmental: Atmospheric Pressure, 50: Environmental: Humidity, 51: Environmental: Temperature, 52: Environmental: Wind Direction, 53: Environmental: Wind Speed, 54: Environmental: Air Quality, 55: Environmental: Heat Index, 56: Environmental: Surface Temperature, 57: Environmental: Volatile Organic Compounds, 58: Environmental: Object Presence, 59: Environmental: Object Proximity, 64: Light, 65: Light: Ambient Light, 66: Light: Consumer Infrared, 67: Light: Infrared Light, 68: Light: Visible Light, 69: Light: Ultraviolet Light, 80: Location, 81: Location: Broadcast, 82: Location: Dead Reckoning, 83: Location: GPS, 84: Location: Lookup, 85: Location: Other, 86: Location: Static, 87: Location: Triangulation, 96: Mechanical, 97: Mechanical: Boolean Switch, 98: Mechanical: Boolean Switch Array, 99: Mechanical: Multivalue Switch, 100: Mechanical: Force, 101: Mechanical: Pressure, 102: Mechanical: Strain, 103: Mechanical: Weight, 104: Mechanical: Haptic Vibrator, 105: Mechanical: Hall Effect Switch, 112: Motion, 113: Motion: Accelerometer 1D, 114: Motion: Accelerometer 2D, 115: Motion: Accelerometer 3D, 116: Motion: Gyrometer 1D, 117: Motion: Gyrometer 2D, 118: Motion: Gyrometer 3D, 119: Motion: Motion Detector, 120: Motion: Speedometer, 121: Motion: Accelerometer, 122: Motion: Gyrometer, 123: Motion: Gravity Vector, 124: Motion: Linear Accelerometer, 128: Orientation, 129: Orientation: Compass 1D, 130: Orientation: Compass 2D, 131: Orientation: Compass 3D, 132: Orientation: Inclinometer 1D, 133: Orientation: Inclinometer 2D, 134: Orientation: Inclinometer 3D, 135: Orientation: Distance 1D, 136: Orientation: Distance 2D, 137: Orientation: Distance 3D, 138: Orientation: Device Orientation, 139: Orientation: Compass, 140: Orientation: Inclinometer, 141: Orientation: Distance, 142: Orientation: Relative Orientation, 143: Orientation: Simple Orientation, 144: Scanner, 145: Scanner: Barcode, 146: Scanner: RFID, 147: Scanner: NFC, 160: Time, 161: Time: Alarm Timer, 162: Time: Real Time Clock, 176: Personal Activity, 177: Personal Activity: Activity Detection, 178: Personal Activity: Device Position, 179: Personal Activity: Pedometer, 180: Personal Activity: Step Detection, 192: Orientation Extended, 193: Orientation Extended: Geomagnetic Orientation, 194: Orientation Extended: Magnetometer, 224: Other, 225: Other: Custom, 226: Other: Generic, 227: Other: Generic Enumerator, 512: Event, 513: Event: Sensor State, 514: Event: Sensor Event, 768: Property, 769: Property: Friendly Name, 770: Property: Persistent Unique ID, 771: Property: Sensor Status, 772: Property: Minimum Report Interval, 773: Property: Sensor Manufacturer, 774: Property: Sensor Model, 775: Property: Sensor Serial Number, 776: Property: Sensor Description, 777: Property: Sensor Connection Type, 778: Property: Sensor Device Path, 779: Property: Hardware Revision, 780: Property: Firmware Version, 781: Property: Release Date, 782: Property: Report Interval, 783: Property: Change Sensitivity Absolute, 784: Property: Change Sensitivity Percent of Range, 785: Property: Change Sensitivity Percent Relative, 786: Property: Accuracy, 787: Property: Resolution, 788: Property: Maximum, 789: Property: Minimum, 790: Property: Reporting State, 791: Property: Sampling Rate, 792: Property: Response Curve, 793: Property: Power State, 794: Property: Maximum FIFO Events, 795: Property: Report Latency, 796: Property: Flush FIFO Events, 797: Property: Maximum Power Consumption, 1024: Data Field: Location, 1026: Data Field: Altitude Antenna Sea Level, 1027: Data Field: Differential Reference Station ID, 1028: Data Field: Altitude Ellipsoid Error, 1029: Data Field: Altitude Ellipsoid, 1030: Data Field: Altitude Sea Level Error, 1031: Data Field: Altitude Sea Level, 1032: Data Field: Differential GPS Data Age, 1033: Data Field: Error Radius, 1034: Data Field: Fix Quality, 1035: Data Field: Fix Type NAry 1.10, 1036: Data Field: Geoidal Separation, 1037: Data Field: GPS Operation Mode, 1038: Data Field: GPS Selection Mode, 1039: Data Field: GPS Status, 1040: Data Field: Position Dilution of Precision, 1041: Data Field: Horizontal Dilution of Precision, 1042: Data Field: Vertical Dilution of Precision, 1043: Data Field: Latitude, 1044: Data Field: Longitude, 1045: Data Field: True Heading, 1046: Data Field: Magnetic Heading, 1047: Data Field: Magnetic Variation, 1048: Data Field: Speed, 1049: Data Field: Satellites in View, 1050: Data Field: Satellites in View Azimuth, 1051: Data Field: Satellites in View Elevation, 1052: Data Field: Satellites in View IDs, 1053: Data Field: Satellites in View PRNs, 1054: Data Field: Satellites in View S/N Ratios, 1055: Data Field: Satellites Used Count, 1056: Data Field: Satellites Used PRNs, 1057: Data Field: NMEA Sentence, 1058: Data Field: Address Line 1, 1059: Data Field: Address Line 2, 1060: Data Field: City, 1061: Data Field: State or Province, 1062: Data Field: Country or Region, 1063: Data Field: Postal Code, 1066: Property: Location, 1067: Property: Location Desired Accuracy, 1072: Data Field: Environmental, 1073: Data Field: Atmospheric Pressure, 1075: Data Field: Relative Humidity, 1076: Data Field: Temperature, 1077: Data Field: Wind Direction, 1078: Data Field: Wind Speed, 1079: Data Field: Air Quality Index, 1080: Data Field: Equivalent CO2, 1081: Data Field: Volatile Organic Compound Concentration, 1082: Data Field: Object Presence, 1083: Data Field: Object Proximity Range, 1084: Data Field: Object Proximity Out of Range, 1088: Property: Environmental, 1089: Property: Reference Pressure, 1104: Data Field: Motion, 1105: Data Field: Motion State, 1106: Data Field: Acceleration, 1107: Data Field: Acceleration Axis X, 1108: Data Field: Acceleration Axis Y, 1109: Data Field: Acceleration Axis Z, 1110: Data Field: Angular Velocity, 1111: Data Field: Angular Velocity about X Axis, 1112: Data Field: Angular Velocity about Y Axis, 1113: Data Field: Angular Velocity about Z Axis, 1114: Data Field: Angular Position, 1115: Data Field: Angular Position about X Axis, 1116: Data Field: Angular Position about Y Axis, 1117: Data Field: Angular Position about Z Axis, 1118: Data Field: Motion Speed, 1119: Data Field: Motion Intensity, 1136: Data Field: Orientation, 1137: Data Field: Heading, 1138: Data Field: Heading X Axis, 1140: Data Field: Heading Z Axis, 1141: Data Field: Heading Compensated Magnetic North, 1142: Data Field: Heading Compensated True North, 1143: Data Field: Heading Magnetic North, 1144: Data Field: Heading True North, 1145: Data Field: Distance, 1146: Data Field: Distance X Axis, 1147: Data Field: Distance Y Axis, 1148: Data Field: Distance Z Axis, 1149: Data Field: Distance Out-of-Range, 1150: Data Field: Tilt, 1151: Data Field: Tilt X Axis, 1152: Data Field: Tilt Y Axis, 1153: Data Field: Tilt Z Axis, 1154: Data Field: Rotation Matrix, 1155: Data Field: Quaternion, 1156: Data Field: Magnetic Flux, 1157: Data Field: Magnetic Flux X Axis, 1158: Data Field: Magnetic Flux Y Axis, 1159: Data Field: Magnetic Flux Z Axis, 1160: Data Field: Magnetometer Accuracy, 1161: Data Field: Simple Orientation Direction, 1168: Data Field: Mechanical, 1169: Data Field: Boolean Switch State, 1170: Data Field: Boolean Switch Array States, 1171: Data Field: Multivalue Switch Value, 1172: Data Field: Force, 1173: Data Field: Absolute Pressure, 1174: Data Field: Gauge Pressure, 1175: Data Field: Strain, 1176: Data Field: Weight, 1184: Property: Mechanical, 1185: Property: Vibration State, 1186: Property: Forward Vibration Speed, 1187: Property: Backward Vibration Speed, 1200: Data Field: Biometric, 1201: Data Field: Human Presence, 1202: Data Field: Human Proximity Range, 1203: Data Field: Human Proximity Out of Range, 1204: Data Field: Human Touch State, 1205: Data Field: Blood Pressure, 1206: Data Field: Blood Pressure Diastolic, 1207: Data Field: Blood Pressure Systolic, 1208: Data Field: Heart Rate, 1209: Data Field: Resting Heart Rate, 1210: Data Field: Heartbeat Interval, 1211: Data Field: Respiratory Rate, 1212: Data Field: SpO2, 1232: Data Field: Light, 1233: Data Field: Illuminance, 1234: Data Field: Color Temperature, 1235: Data Field: Chromaticity, 1236: Data Field: Chromaticity X, 1237: Data Field: Chromaticity Y, 1238: Data Field: Consumer IR Sentence Receive, 1239: Data Field: Infrared Light, 1240: Data Field: Red Light, 1241: Data Field: Green Light, 1242: Data Field: Blue Light, 1243: Data Field: Ultraviolet A Light, 1244: Data Field: Ultraviolet B Light, 1245: Data Field: Ultraviolet Index, 1248: Property: Light, 1249: Property: Consumer IR Sentence Send, 1264: Data Field: Scanner, 1265: Data Field: RFID Tag 40 Bit, 1266: Data Field: NFC Sentence Receive, 1272: Property: Scanner, 1273: Property: NFC Sentence Send, 1280: Data Field: Electrical, 1281: Data Field: Capacitance, 1282: Data Field: Current, 1283: Data Field: Electrical Power, 1284: Data Field: Inductance, 1285: Data Field: Resistance, 1286: Data Field: Voltage, 1287: Data Field: Frequency, 1288: Data Field: Period, 1289: Data Field: Percent of Range, 1312: Data Field: Time, 1313: Data Field: Year, 1314: Data Field: Month, 1315: Data Field: Day, 1316: Data Field: Day of Week, 1317: Data Field: Hour, 1318: Data Field: Minute, 1319: Data Field: Second, 1320: Data Field: Millisecond, 1321: Data Field: Timestamp, 1322: Data Field: Julian Day of Year, 1323: Data Field: Time Since System Boot, 1328: Property: Time, 1329: Property: Time Zone Offset from UTC, 1330: Property: Time Zone Name, 1331: Property: Daylight Savings Time Observed, 1332: Property: Time Trim Adjustment, 1333: Property: Arm Alarm, 1344: Data Field: Custom, 1345: Data Field: Custom Usage, 1346: Data Field: Custom Boolean Array, 1347: Data Field: Custom Value, 1348: Data Field: Custom Value 1, 1349: Data Field: Custom Value 2, 1350: Data Field: Custom Value 3, 1351: Data Field: Custom Value 4, 1352: Data Field: Custom Value 5, 1353: Data Field: Custom Value 6, 1354: Data Field: Custom Value 7, 1355: Data Field: Custom Value 8, 1356: Data Field: Custom Value 9, 1357: Data Field: Custom Value 10, 1358: Data Field: Custom Value 11, 1359: Data Field: Custom Value 12, 1360: Data Field: Custom Value 13, 1361: Data Field: Custom Value 14, 1362: Data Field: Custom Value 15, 1363: Data Field: Custom Value 16, 1364: Data Field: Custom Value 17, 1365: Data Field: Custom Value 18, 1366: Data Field: Custom Value 19, 1367: Data Field: Custom Value 20, 1368: Data Field: Custom Value 21, 1369: Data Field: Custom Value 22, 1370: Data Field: Custom Value 23, 1371: Data Field: Custom Value 24, 1372: Data Field: Custom Value 25, 1373: Data Field: Custom Value 26, 1374: Data Field: Custom Value 27, 1375: Data Field: Custom Value 28, 1376: Data Field: Generic, 1377: Data Field: Generic GUID or PROPERTYKEY, 1378: Data Field: Generic Category GUID, 1379: Data Field: Generic Type GUID, 1380: Data Field: Generic Event PROPERTYKEY, 1381: Data Field: Generic Property PROPERTYKEY, 1382: Data Field: Generic Data Field PROPERTYKEY, 1383: Data Field: Generic Event, 1384: Data Field: Generic Property, 1385: Data Field: Generic Data Field, 1386: Data Field: Enumerator Table Row Index, 1387: Data Field: Enumerator Table Row Count, 1388: Data Field: Generic GUID or PROPERTYKEY kind, 1389: Data Field: Generic GUID, 1390: Data Field: Generic PROPERTYKEY, 1391: Data Field: Generic Top Level Collection ID, 1392: Data Field: Generic Report ID, 1393: Data Field: Generic Report Item Position Index, 1394: Data Field: Generic Firmware VARTYPE, 1395: Data Field: Generic Unit of Measure, 1396: Data Field: Generic Unit Exponent, 1397: Data Field: Generic Report Size, 1398: Data Field: Generic Report Count, 1408: Property: Generic, 1409: Property: Enumerator Table Row Index, 1410: Property: Enumerator Table Row Count, 1424: Data Field: Personal Activity, 1425: Data Field: Activity Type, 1426: Data Field: Activity State, 1427: Data Field: Device Position, 1428: Data Field: Step Count, 1429: Data Field: Step Count Reset, 1430: Data Field: Step Duration, 1431: Data Field: Step Type, 1440: Property: Minimum Activity Detection Interval, 1441: Property: Supported Activity Types, 1442: Property: Subscribed Activity Types, 1443: Property: Supported Step Types, 1444: Property: Subscribed Step Types, 1445: Property: Floor Height, 1456: Data Field: Custom Type ID, 2048: Sensor State: Undefined, 2049: Sensor State: Ready, 2050: Sensor State: Not Available, 2051: Sensor State: No Data Sel, 2052: Sensor State: Initializing, 2053: Sensor State: Access Denied, 2054: Sensor State: Error, 2064: Sensor Event: Unknown, 2065: Sensor Event: State Changed, 2066: Sensor Event: Property Changed, 2067: Sensor Event: Data Updated, 2068: Sensor Event: Poll Response, 2069: Sensor Event: Change Sensitivity, 2070: Sensor Event: Range Maximum Reached, 2071: Sensor Event: Range Minimum Reached, 2072: Sensor Event: High Threshold Cross Upward, 2073: Sensor Event: High Threshold Cross Downward, 2074: Sensor Event: Low Threshold Cross Upward, 2075: Sensor Event: Low Threshold Cross Downward, 2076: Sensor Event: Zero Threshold Cross Upward, 2077: Sensor Event: Zero Threshold Cross Downward, 2078: Sensor Event: Period Exceeded, 2079: Sensor Event: Frequency Exceeded, 2080: Sensor Event: Complex Trigger, 2096: Connection Type: PC Integrated, 2097: Connection Type: PC Attached, 2098: Connection Type: PC External, 2112: Reporting State: Report No Events, 2113: Reporting State: Report All Events, 2114: Reporting State: Report Threshold Events, 2115: Reporting State: Wake On No Events, 2116: Reporting State: Wake On All Events, 2117: Reporting State: Wake On Threshold Events, 2128: Power State: Undefined, 2129: Power State: D0 Full Power, 2130: Power State: D1 Low Power, 2131: Power State: D2 Standby Power with Wakeup, 2132: Power State: D3 Sleep with Wakeup, 2133: Power State: D4 Power Off, 2144: Accuracy: Default, 2145: Accuracy: High, 2146: Accuracy: Medium, 2147: Accuracy: Low, 2160: Fix Quality: No Fix, 2161: Fix Quality: GPS, 2162: Fix Quality: DGPS, 2176: Fix Type: No Fix, 2177: Fix Type: GPS SPS Mode, Fix Valid, 2178: Fix Type: DGPS SPS Mode, Fix Valid, 2179: Fix Type: GPS PPS Mode, Fix Valid, 2180: Fix Type: Real Time Kinematic, 2181: Fix Type: Float RTK, 2182: Fix Type: Estimated (dead reckoned), 2183: Fix Type: Manual Input Mode, 2184: Fix Type: Simulator Mode, 2192: GPS Operation Mode: Manual, 2193: GPS Operation Mode: Automatic, 2208: GPS Selection Mode: Autonomous, 2209: GPS Selection Mode: DGPS, 2210: GPS Selection Mode: Estimated (dead reckoned), 2211: GPS Selection Mode: Manual Input, 2212: GPS Selection Mode: Simulator, 2213: GPS Selection Mode: Data Not Valid, 2224: GPS Status: Data Valid, 2225: GPS Status: Data Not Valid, 2240: Day of Week: Sunday, 2241: Day of Week: Monday, 2242: Day of Week: Tuesday, 2243: Day of Week: Wednesday, 2244: Day of Week: Thursday, 2245: Day of Week: Friday, 2246: Day of Week: Saturday, 2256: Kind: Category, 2257: Kind: Type, 2258: Kind: Event, 2259: Kind: Property, 2260: Kind: Data Field, 2272: Magnetometer Accuracy: Low, 2273: Magnetometer Accuracy: Medium, 2274: Magnetometer Accuracy: High, 2288: Simple Orientation Direction: Not Rotated, 2289: Simple Orientation Direction: Rotated 90 Degrees, 2290: Simple Orientation Direction: Rotated 180 Degrees, 2291: Simple Orientation Direction: Rotated 270 Degrees, 2292: Simple Orientation Direction: Face Up, 2293: Simple Orientation Direction: Face Down, 2304: VT_NULL: Empty, 2305: VT_BOOL: Boolean, 2306: VT_UI1: Byte, 2307: VT_I1: Character, 2308: VT_UI2: Unsigned Short, 2309: VT_I2: Short, 2310: VT_UI4: Unsigned Long, 2311: VT_I4: Long, 2312: VT_UI8: Unsigned Long Long, 2313: VT_I8: Long Long, 2314: VT_R4: Float, 2315: VT_R8: Double, 2316: VT_WSTR: Wide String, 2317: VT_STR: Narrow String, 2318: VT_CLSID: Guid, 2319: VT_VECTOR|VT_UI1: Opaque Structure, 2320: VT_F16E0: HID 16-bit Float with Unit Exponent 0, 2321: VT_F16E1: HID 16-bit Float with Unit Exponent 1, 2322: VT_F16E2: HID 16-bit Float with Unit Exponent 2, 2323: VT_F16E3: HID 16-bit Float with Unit Exponent 3, 2324: VT_F16E4: HID 16-bit Float with Unit Exponent 4, 2325: VT_F16E5: HID 16-bit Float with Unit Exponent 5, 2326: VT_F16E6: HID 16-bit Float with Unit Exponent 6, 2327: VT_F16E7: HID 16-bit Float with Unit Exponent 7, 2328: VT_F16E8: HID 16-bit Float with Unit Exponent 8, 2329: VT_F16E9: HID 16-bit Float with Unit Exponent 9, 2330: VT_F16EA: HID 16-bit Float with Unit Exponent A, 2331: VT_F16EB: HID 16-bit Float with Unit Exponent B, 2332: VT_F16EC: HID 16-bit Float with Unit Exponent C, 2333: VT_F16ED: HID 16-bit Float with Unit Exponent D, 2334: VT_F16EE: HID 16-bit Float with Unit Exponent E, 2335: VT_F16EF: HID 16-bit Float with Unit Exponent F, 2336: VT_F32E0: HID 32-bit Float with Unit Exponent 0, 2337: VT_F32E1: HID 32-bit Float with Unit Exponent 1, 2338: VT_F32E2: HID 32-bit Float with Unit Exponent 2, 2339: VT_F32E3: HID 32-bit Float with Unit Exponent 3, 2340: VT_F32E4: HID 32-bit Float with Unit Exponent 4, 2341: VT_F32E5: HID 32-bit Float with Unit Exponent 5, 2342: VT_F32E6: HID 32-bit Float with Unit Exponent 6, 2343: VT_F32E7: HID 32-bit Float with Unit Exponent 7, 2344: VT_F32E8: HID 32-bit Float with Unit Exponent 8, 2345: VT_F32E9: HID 32-bit Float with Unit Exponent 9, 2346: VT_F32EA: HID 32-bit Float with Unit Exponent A, 2347: VT_F32EB: HID 32-bit Float with Unit Exponent B, 2348: VT_F32EC: HID 32-bit Float with Unit Exponent C, 2349: VT_F32ED: HID 32-bit Float with Unit Exponent D, 2350: VT_F32EE: HID 32-bit Float with Unit Exponent E, 2351: VT_F32EF: HID 32-bit Float with Unit Exponent F, 2352: Activity Type: Unknown, 2353: Activity Type: Stationary, 2354: Activity Type: Fidgeting, 2355: Activity Type: Walking, 2356: Activity Type: Running, 2357: Activity Type: In Vehicle, 2358: Activity Type: Biking, 2359: Activity Type: Idle, 2368: Unit: Not Specified, 2369: Unit: Lux, 2370: Unit: Degrees Kelvin, 2371: Unit: Degrees Celsius, 2372: Unit: Pascal, 2373: Unit: Newton, 2374: Unit: Meters/Second, 2375: Unit: Kilogram, 2376: Unit: Meter, 2377: Unit: Meters/Second/Second, 2378: Unit: Farad, 2379: Unit: Ampere, 2380: Unit: Watt, 2381: Unit: Henry, 2382: Unit: Ohm, 2383: Unit: Volt, 2384: Unit: Hertz, 2385: Unit: Bar, 2386: Unit: Degrees Anti-clockwise, 2387: Unit: Degrees Clockwise, 2388: Unit: Degrees, 2389: Unit: Degrees/Second, 2390: Unit: Degrees/Second/Second, 2391: Unit: Knot, 2392: Unit: Percent, 2393: Unit: Second, 2394: Unit: Millisecond, 2395: Unit: G, 2396: Unit: Bytes, 2397: Unit: Milligauss, 2398: Unit: Bits, 2400: Activity State: No State Change, 2401: Activity State: Start Activity, 2402: Activity State: End Activity, 2416: Exponent 0: 1, 2417: Exponent 1: 10, 2418: Exponent 2: 100, 2419: Exponent 3: 1 000, 2420: Exponent 4: 10 000, 2421: Exponent 5: 100 000, 2422: Exponent 6: 1 000 000, 2423: Exponent 7: 10 000 000, 2424: Exponent 8: 0.00 000 001, 2425: Exponent 9: 0.0 000 001, 2426: Exponent A: 0.000 001, 2427: Exponent B: 0.00 001, 2428: Exponent C: 0.0 001, 2429: Exponent D: 0.001, 2430: Exponent E: 0.01, 2431: Exponent F: 0.1, 2432: Device Position: Unknown, 2433: Device Position: Unchanged, 2434: Device Position: On Desk, 2435: Device Position: In Hand, 2436: Device Position: Moving in Bag, 2437: Device Position: Stationary in Bag, 16499: Data Field: Heading Y Axis}, 64: {0: Undefined, 1: Medical Ultrasound, 32: VCR/Acquisition, 33: Freeze/Thaw, 34: Clip Store, 35: Update, 36: Next, 37: Save, 38: Print, 39: Microphone Enable, 64: Cine, 65: Transmit Power, 66: Volume, 67: Focus, 68: Depth, 96: Soft Step-Primary, 97: Soft Step-Secondary, 112: Depth Gain Compensation, 128: Zoom Select, 129: Zoom Adjust, 130: Spectral Doppler Mode Select, 131: Spectral Doppler Adjust, 132: Color Doppler Mode Select, 133: Color Doppler Adjust, 134: Motion Mode Select, 135: Motion Mode Adjust, 136: 2-D Mode Select, 137: 2-D Mode Adjust, 160: Soft Control Select, 161: Soft Control Adjust}, 65: {0: Undefined, 1: Braille Display, 2: Braille Row, 3: 8 Dot Braille Cell, 4: 6 Dot Braille Cell, 5: Number of Braille Cells, 6: Screen Reader Control, 7: Screen Reader Identifier, 250: Router Set 1, 251: Router Set 2, 252: Router Set 3, 256: Router Button, 512: Braille Buttons, 513: Braille Keyboard Dot 1, 514: Braille Keyboard Dot 2, 515: Braille Keyboard Dot 3, 516: Braille Keyboard Dot 4, 517: Braille Keyboard Dot 5, 518: Braille Keyboard Dot 6, 519: Braille Keyboard Dot 7, 520: Braille Keyboard Dot 8, 521: Braille Keyboard Space, 522: Braille Keyboard Left Space, 523: Braille Keyboard Right Space, 524: Braille Face Controls, 525: Braille Left Controls, 526: Braille Right Controls, 527: Braille Top Controls, 528: Braille Joystick Center, 529: Braille Joystick Up, 530: Braille Joystick Down, 531: Braille Joystick Left, 535: Braille D ‐ Pad Down, 536: Braille D ‐ Pad Left, 537: Braille D ‐ Pad Right, 538: Braille Pan Left, 539: Braille Pan Right, 540: Braille Rocker Up, 541: Braille Rocker Down, 542: Braille Rocker Press, 548: Braille Joystick Right, 549: Braille D ‐ Pad Center, 550: Braille D ‐ Pad Up}, 89: {0: Undefined, 1: Lamp Array, 2: Lamp Array Attributes Report, 3: Lamp Count, 4: Bounding Box Width In Micrometers, 5: Bounding Box Height In Micrometers, 6: Bounding Box Depth In Micrometers, 7: Lamp Array Kind, 8: Min Update Interval In Microseconds, 32: Lamp Attributes Request Report, 33: Lamp Id, 34: Lamp Attributes Response Report, 35: Position X In Micrometers, 36: Position Y In Micrometers, 37: Position Z In Micrometers, 38: Lamp Purposes, 39: Update Latency In Microseconds, 40: Red Level Count, 41: Green Level Count, 42: Blue Level Count, 43: Intensity Level Count, 44: Is Programmable, 45: Input Binding, 80: Lamp Multi Update Report, 81: Red Update Channel, 82: Green Update Channel, 83: Blue Update Channel, 84: Intensity Update Channel, 85: Lamp Update Flags, 96: Lamp Range Update Report, 97: Lamp Id Start, 98: Lamp Id End, 112: Lamp Array Control Report, 113: Autonomous Mode}, 128: {0: Undefined, 1: Monitor Control, 2: EDID Information, 3: VDIF Information, 4: VESA Version, 5: On Screen Display, 6: Auto Size Center, 7: Polarity Horz Synch, 8: Polarity Vert Synch, 9: Sync Type, 10: Screen Position, 11: Horizontal Frequency, 12: Vertical Frequency}, 129: {0: unassigned}, 130: {16: Brightness, 18: Contrast, 22: Video Gain Red, 24: Video Gain Green, 26: Video Gain Blue, 28: Focus, 32: Horizontal Position, 34: Horizontal Size, 36: Horizontal Pincushion, 38: Horizontal Pincushion Balance, 40: Horizontal Misconvergence, 42: Horizontal Linearity, 44: Horizontal Linearity Balance, 48: Vertical Position, 50: Vertical Size, 52: Vertical Pincushion, 54: Vertical Pincushion Balance, 56: Vertical Misconvergence, 58: Vertical Linearity, 60: Vertical Linearity Balance, 64: Parallelogram Distortion, 66: Trapezoidal Distortion, 68: Tilt, 70: Top Corner Distortion Control, 72: Top Corner Distortion Balance, 74: Bottom Corner Distortion Control, 76: Bottom Corner Distortion Balance, 86: Moiré Horizontal, 88: Moiré Vertical, 94: Input Level Select, 96: Input Source Select, 98: Stereo Mode, 108: Video Black Level Red, 110: Video Black Level Green, 112: Video Black Level Blue}, 131: {0: Undefined, 1: Settings, 2: Degauss}, 132: {6: Peripheral Device}, 133: {}, 140: {0: Undefined}, 141: {0: Undefined}, 142: {0: Undefined}, 144: {0: Undefined, 32: Camera Auto-focus, 33: Camera Shutter}, 145: {0: Undefined}, 146: {}, 61904: {0: Undefined, 1: U2F Authenticator Device, 32: Input Report Data, 33: Output Report Data}, 65280: {0: Undefined, 1: Vendor Usage 1, 2: Vendor Usage 2}, 65293: {1: Wacom Digitizer, 2: Wacom Pen, 3: Light Pen, 4: Touch Screen, 5: Touch Pad, 6: White Board, 7: Coordinate Measuring Machine, 8: 3-D Digitizer, 9: Stereo Plotter, 10: Articulated Arm, 11: Armature, 12: Multiple Point Digitizer, 13: Free Space Wand, 14: Device Configuration, 32: Stylus, 33: Puck, 34: Finger, 35: Device Settings, 48: Tip Pressure, 49: Barrel Pressure, 50: In Range, 51: Touch, 52: Untouch, 53: Tap, 54: Wacom Sense, 55: Data Valid, 56: Transducer Index, 57: Wacom DigitizerFnKeys, 58: Program Change Keys, 59: Battery Strength, 60: Invert, 61: X Tilt, 62: Y Tilt, 63: Azimuth, 64: Altitude, 65: Twist, 66: Tip Switch, 67: Secondary Tip Switch, 68: Barrel Switch, 69: Eraser, 70: Tablet Pick, 71: Confidence, 72: Width, 73: Height, 81: Contact Id, 82: Inputmode, 83: Device Index, 84: Contact Count, 85: Contact Max, 86: Scan Time, 87: Surface Switch, 88: Button Switch, 89: Button Type, 90: Secondary Barrel Switch, 91: Transducer Serial Number, 92: Wacom SerialHi, 93: Preferred Color is Locked, 94: Preferred Line Width, 95: Preferred Line Width is Locked, 112: Preferred Line Style, 113: Preferred Line Style is Locked, 114: Ink, 115: Pencil, 116: Highlighter, 117: Chisel Marker, 118: Brush, 119: Wacom ToolType, 128: Digitizer Diagnostic, 129: Digitizer Error, 130: Err Normal Status, 131: Err Transducers Exceeded, 132: Err Full Trans Features Unavail, 133: Err Charge Low, 304: X, 305: Y, 306: Wacom Distance, 310: Wacom TouchStrip, 311: Wacom TouchStrip2, 312: Wacom TouchRing, 313: Wacom TouchRingStatus, 1025: Wacom Accelerometer X, 1026: Wacom Accelerometer Y, 1027: Wacom Accelerometer Z, 1028: Wacom Battery Charging, 1083: Wacom Battery Level, 1108: Wacom TouchOnOff, 2320: Wacom ExpressKey00, 2384: Wacom ExpressKeyCap00, 2432: Wacom Mode Change, 2433: Wacom Button Desktop Center, 2434: Wacom Button On Screen Keyboard, 2435: Wacom Button Display Setting, 2438: Wacom Button Touch On/Off, 2448: Wacom Button Home, 2449: Wacom Button Up, 2450: Wacom Button Down, 2451: Wacom Button Left, 2452: Wacom Button Right, 2453: Wacom Button Center, 3331: Wacom FingerWheel, 3376: Wacom Offset Left, 3377: Wacom Offset Top, 3378: Wacom Offset Right, 3379: Wacom Offset Bottom, 4098: Wacom DataMode, 4115: Wacom Digitizer Info}}

  The HID Usage Tables as a `hidtools.HidUsageTable` object, a dictionary where the keys are the numeric Usage Page and the values are the respective `hidtools.HidUsagePage` object.

      > usages = hidtools.hut.HUT()
      > print(usages[0x01].page_name)
      Generic Desktop
      > print(usages.usage_pages[0x01].page_name)
      Generic Desktop
      > print(usages[0x01].page_id)
      1

class HidUsage(usage_page: HidUsagePage, usage: Annotated[int, ValueRange(min=0, max=65535)], name: str)

  Bases: `Hashable`

  A HID Usage entry as defined in the HID Usage Tablets.

      > usage_page = hidtools.hut.HUT[0x01]  # Generic Desktop
      > usage = usage_page[0x02]
      > print(usage.usage)
      2
      > print(usage)
      Mouse
      > print(usage.name)
      Mouse

  Parameters:

    - usage_page (HidUsagePage) – the Usage Page this Usage belongs to

    - usage (int) – the 16-bit Usage assigned by the HID Usage Tables

    - name (str) – the usage_name

  usage

    the 16-bit Usage assigned by the HId Usage Tables

  name

    the semantic name for this Usage

  usage_page

    the `HidUsagePage` this Usage belongs to

class HidUsagePage

  Bases: `dict`[`Annotated`[`int`, ValueRange(min=0, max=65535)], `HidUsage`]

  A dictionary of HID Usages in the form `{usage: usage_name}`, representing all Usages in this Usage Page.

  A HID Usage is named semantical identifier that describe how a given field in a HID report is to be used. A Usage Page is a logical grouping of those identifiers, e.g. “Generic Desktop”, “Telephony Devices”, or “Digitizers”.

      > print(usage_page.page_name)
      Generic Desktop
      > print(usage_page.page_id)
      1
      > print(usage_page[0x02])
      Mouse
      > print(usage_page['Mouse'])
      Mouse
      > usage = usage_page.from_name["Mouse"]
      > print(usage.usage)
      2
      > print(usage.name)
      Mouse
      > print(usage)
      Mouse

  page_id

    The Page ID for this Usage Page, e.g. `01` (Generic Desktop)

  page_name

    The assigned name for this usage Page, e.g. “Generic Desktop”

  property from_name: dict[str, HidUsage]

    A dictionary using `{ name: usage }` mapping, to look up the `HidUsage` based on a name.

  property from_usage: dict[Annotated[int, ValueRange(min=0, max=65535)], HidUsage]

    A dictionary using `{ usage: name }` mapping, to look up the name based on a page ID . This is the same as using the object itself.

  property page_id: Annotated[int, ValueRange(min=0, max=65535)]

    The numerical page ID for this usage page

  property page_name: str

    The assigned name for this Usage Page

class HidUsageTable

  Bases: `dict`[`Annotated`[`int`, ValueRange(min=0, max=65535)], `HidUsagePage`]

  This effectively a dictionary of all HID Usages known to man. Or to this module at least. This object is a singleton, it is available as `hidtools.hut.HUT`.

  Elements of this dictionary are `HidUsagePage` objects.

  This object is a dictionary, use like this:

      > hut = hidtools.hut.HUT
      > print(hut[0x01].page_name)
      Generic Desktop
      > print(hut['Generic Desktop'].page_name)
      Generic Desktop
      > print(hut.usage_pages[0x01].page_name)
      Generic Desktop
      > print(hut.usage_page_names['Generic Desktop'].page_name)
      Generic Desktop
      > print(hut[0x01].page_id)
      1
      > print(hut.usage_page_from_name('Generic Desktop').page_id)
      1
      > print(hut.usage_page_from_page_id(0x01).page_name)
      Generic Desktop

  usage_page_from_name(page_name: str) → HidUsagePage | None

    Look up the usage page based on the page name (e.g. “Generic Desktop”). This is identical to

        self.usage_page_names[page_name]

    except that this function returns `None` if the page name is unknown.

    Returns:

      the `HidUsagePage()` or None

  usage_page_from_page_id(page_id: Annotated[int, ValueRange(min=0, max=65535)]) → HidUsagePage | None

    Look up the usage page based on the page ID. This is identical to

        self.usage_pages[page_id]

    except that this function returns `None` if the page ID is unknown.

    Returns:

      the `HidUsagePage()` or None

  property usage_page_names: dict[str, HidUsagePage]

    A dictionary mapping `{page_name : object}`. These two are equivalent calls:

        HUT['Generic Desktop']
        HUT.usage_page_names['Generic Desktop']

  property usage_pages: dict[Annotated[int, ValueRange(min=0, max=65535)], HidUsagePage]

    A dictionary mapping `{page_id : object}`. These two are equivalent calls:

        HUT[0x1]
        HUT.usage_pages[0x1]

class ValueRange(min, max)

  Bases: `NamedTuple`

  max: int

    Alias for field number 1

  min: int

    Alias for field number 0