#pragma once

#include "quantum.h"
#include "via.h"

#ifndef VIA_HAS_BROKEN_KEYCODES

_Static_assert(KC_NO == 0, "");
_Static_assert(KC_TRNS == 1, "");

_Static_assert(KC_A == 0x04, "");
_Static_assert(KC_B == 0x05, "");
_Static_assert(KC_C == 0x06, "");
_Static_assert(KC_D == 0x07, "");
_Static_assert(KC_E == 0x08, "");
_Static_assert(KC_F == 0x09, "");
_Static_assert(KC_G == 0x0A, "");
_Static_assert(KC_H == 0x0B, "");
_Static_assert(KC_I == 0x0C, "");
_Static_assert(KC_J == 0x0D, "");
_Static_assert(KC_K == 0x0E, "");
_Static_assert(KC_L == 0x0F, "");
_Static_assert(KC_M == 0x10, "");
_Static_assert(KC_N == 0x11, "");
_Static_assert(KC_O == 0x12, "");
_Static_assert(KC_P == 0x13, "");
_Static_assert(KC_Q == 0x14, "");
_Static_assert(KC_R == 0x15, "");
_Static_assert(KC_S == 0x16, "");
_Static_assert(KC_T == 0x17, "");
_Static_assert(KC_U == 0x18, "");
_Static_assert(KC_V == 0x19, "");
_Static_assert(KC_W == 0x1A, "");
_Static_assert(KC_X == 0x1B, "");
_Static_assert(KC_Y == 0x1C, "");
_Static_assert(KC_Z == 0x1D, "");
_Static_assert(KC_1 == 0x1E, "");
_Static_assert(KC_2 == 0x1F, "");
_Static_assert(KC_3 == 0x20, "");
_Static_assert(KC_4 == 0x21, "");
_Static_assert(KC_5 == 0x22, "");
_Static_assert(KC_6 == 0x23, "");
_Static_assert(KC_7 == 0x24, "");
_Static_assert(KC_8 == 0x25, "");
_Static_assert(KC_9 == 0x26, "");
_Static_assert(KC_0 == 0x27, "");
_Static_assert(KC_ENTER == 0x28, "");
_Static_assert(KC_ESCAPE == 0x29, "");
_Static_assert(KC_BSPACE == 0x2A, "");
_Static_assert(KC_TAB == 0x2B, "");
_Static_assert(KC_SPACE == 0x2C, "");
_Static_assert(KC_MINUS == 0x2D, "");
_Static_assert(KC_EQUAL == 0x2E, "");
_Static_assert(KC_LBRACKET == 0x2F, "");
_Static_assert(KC_RBRACKET == 0x30, "");
_Static_assert(KC_BSLASH == 0x31, "");
_Static_assert(KC_SCOLON == 0x33, "");
_Static_assert(KC_QUOTE == 0x34, "");
_Static_assert(KC_GRAVE == 0x35, "");
_Static_assert(KC_COMMA == 0x36, "");
_Static_assert(KC_DOT == 0x37, "");
_Static_assert(KC_SLASH == 0x38, "");
_Static_assert(KC_CAPSLOCK == 0x39, "");
_Static_assert(KC_F1 == 0x3A, "");
_Static_assert(KC_F2 == 0x3B, "");
_Static_assert(KC_F3 == 0x3C, "");
_Static_assert(KC_F4 == 0x3D, "");
_Static_assert(KC_F5 == 0x3E, "");
_Static_assert(KC_F6 == 0x3F, "");
_Static_assert(KC_F7 == 0x40, "");
_Static_assert(KC_F8 == 0x41, "");
_Static_assert(KC_F9 == 0x42, "");
_Static_assert(KC_F10 == 0x43, "");
_Static_assert(KC_F11 == 0x44, "");
_Static_assert(KC_F12 == 0x45, "");
_Static_assert(KC_PSCREEN == 0x46, "");
_Static_assert(KC_SCROLLLOCK == 0x47, "");
_Static_assert(KC_PAUSE == 0x48, "");
_Static_assert(KC_INSERT == 0x49, "");
_Static_assert(KC_HOME == 0x4A, "");
_Static_assert(KC_PGUP == 0x4B, "");
_Static_assert(KC_DELETE == 0x4C, "");
_Static_assert(KC_END == 0x4D, "");
_Static_assert(KC_PGDOWN == 0x4E, "");
_Static_assert(KC_RIGHT == 0x4F, "");
_Static_assert(KC_LEFT == 0x50, "");
_Static_assert(KC_DOWN == 0x51, "");
_Static_assert(KC_UP == 0x52, "");
_Static_assert(KC_NUMLOCK == 0x53, "");
_Static_assert(KC_KP_SLASH == 0x54, "");
_Static_assert(KC_KP_ASTERISK == 0x55, "");
_Static_assert(KC_KP_MINUS == 0x56, "");
_Static_assert(KC_KP_PLUS == 0x57, "");
_Static_assert(KC_KP_ENTER == 0x58, "");
_Static_assert(KC_KP_1 == 0x59, "");
_Static_assert(KC_KP_2 == 0x5A, "");
_Static_assert(KC_KP_3 == 0x5B, "");
_Static_assert(KC_KP_4 == 0x5C, "");
_Static_assert(KC_KP_5 == 0x5D, "");
_Static_assert(KC_KP_6 == 0x5E, "");
_Static_assert(KC_KP_7 == 0x5F, "");
_Static_assert(KC_KP_8 == 0x60, "");
_Static_assert(KC_KP_9 == 0x61, "");
_Static_assert(KC_KP_0 == 0x62, "");
_Static_assert(KC_KP_DOT == 0x63, "");
_Static_assert(KC_APPLICATION == 0x65, "");
_Static_assert(KC_KP_EQUAL == 0x67, "");
_Static_assert(KC_KP_COMMA == 0x85, "");
_Static_assert(KC_LCTRL == 0xE0, "");
_Static_assert(KC_LSHIFT == 0xE1, "");
_Static_assert(KC_LALT == 0xE2, "");
_Static_assert(KC_LGUI == 0xE3, "");
_Static_assert(KC_RCTRL == 0xE4, "");
_Static_assert(KC_RSHIFT == 0xE5, "");
_Static_assert(KC_RALT == 0xE6, "");
_Static_assert(KC_RGUI == 0xE7, "");

_Static_assert(KC_TILD == 0x235, "");
_Static_assert(KC_EXLM == 0x21E, "");
_Static_assert(KC_AT == 0x21F, "");
_Static_assert(KC_HASH == 0x220, "");
_Static_assert(KC_DLR == 0x221, "");
_Static_assert(KC_PERC == 0x222, "");
_Static_assert(KC_CIRC == 0x223, "");
_Static_assert(KC_AMPR == 0x224, "");
_Static_assert(KC_ASTR == 0x225, "");
_Static_assert(KC_LPRN == 0x226, "");
_Static_assert(KC_RPRN == 0x227, "");
_Static_assert(KC_UNDS == 0x22D, "");
_Static_assert(KC_PLUS == 0x22E, "");
_Static_assert(KC_LCBR == 0x22F, "");
_Static_assert(KC_RCBR == 0x230, "");
_Static_assert(KC_LT == 0x236, "");
_Static_assert(KC_GT == 0x237, "");
_Static_assert(KC_COLN == 0x233, "");
_Static_assert(KC_PIPE == 0x231, "");
_Static_assert(KC_QUES == 0x238, "");
_Static_assert(KC_DQUO == 0x234, "");

_Static_assert(KC_NONUS_HASH == 0x32, "");
_Static_assert(KC_NONUS_BSLASH == 0x64, "");
_Static_assert(KC_RO == 0x87, "");
_Static_assert(KC_KANA == 0x88, "");
_Static_assert(KC_JYEN == 0x89, "");
_Static_assert(KC_HENK == 0x8A, "");
_Static_assert(KC_MHEN == 0x8B, "");
_Static_assert(KC_LANG1 == 0x90, "");
_Static_assert(KC_LANG2 == 0x91, "");

_Static_assert(KC_GESC == 0x5C16, "");
_Static_assert(KC_LSPO == 0x5CD7, "");
_Static_assert(KC_RSPC == 0x5CD8, "");
_Static_assert(KC_LCPO == 0x5CF3, "");
_Static_assert(KC_RCPC == 0x5CF4, "");
_Static_assert(KC_LAPO == 0x5CF5, "");
_Static_assert(KC_RAPC == 0x5CF6, "");
_Static_assert(KC_SFTENT == 0x5CD9, "");

_Static_assert(BL_TOGG == 23743, "");
_Static_assert(BL_STEP == 23744, "");
_Static_assert(BL_BRTG == 23745, "");
_Static_assert(BL_ON == 23739, "");
_Static_assert(BL_OFF == 23740, "");
_Static_assert(BL_INC == 23742, "");
_Static_assert(BL_DEC == 23741, "");
_Static_assert(RGB_TOG == 23746, "");
_Static_assert(RGB_MOD == 23747, "");
_Static_assert(RGB_RMOD == 23748, "");
_Static_assert(RGB_HUI == 23749, "");
_Static_assert(RGB_HUD == 23750, "");
_Static_assert(RGB_SAI == 23751, "");
_Static_assert(RGB_SAD == 23752, "");
_Static_assert(RGB_VAI == 23753, "");
_Static_assert(RGB_VAD == 23754, "");
_Static_assert(RGB_SPI == 23755, "");
_Static_assert(RGB_SPD == 23756, "");
_Static_assert(RGB_M_P == 23757, "");
_Static_assert(RGB_M_B == 23758, "");
_Static_assert(RGB_M_R == 23759, "");
_Static_assert(RGB_M_SW == 23760, "");
_Static_assert(RGB_M_SN == 23761, "");
_Static_assert(RGB_M_K == 23762, "");
_Static_assert(RGB_M_X == 23763, "");
_Static_assert(RGB_M_G == 23764, "");
_Static_assert(RGB_M_T == 23765, "");

_Static_assert(KC_F13 == 104, "");
_Static_assert(KC_F14 == 105, "");
_Static_assert(KC_F15 == 106, "");
_Static_assert(KC_F16 == 107, "");
_Static_assert(KC_F17 == 108, "");
_Static_assert(KC_F18 == 109, "");
_Static_assert(KC_F19 == 110, "");
_Static_assert(KC_F20 == 111, "");
_Static_assert(KC_F21 == 112, "");
_Static_assert(KC_F22 == 113, "");
_Static_assert(KC_F23 == 114, "");
_Static_assert(KC_F24 == 115, "");
_Static_assert(KC_PWR == 165, "");
_Static_assert(KC_SLEP == 166, "");
_Static_assert(KC_WAKE == 167, "");
_Static_assert(KC_EXEC == 116, "");
_Static_assert(KC_HELP == 117, "");
_Static_assert(KC_SLCT == 119, "");
_Static_assert(KC_STOP == 120, "");
_Static_assert(KC_AGIN == 121, "");
_Static_assert(KC_UNDO == 122, "");
_Static_assert(KC_CUT == 123, "");
_Static_assert(KC_COPY == 124, "");
_Static_assert(KC_PSTE == 125, "");
_Static_assert(KC_FIND == 126, "");
_Static_assert(KC_CALC == 178, "");
_Static_assert(KC_MAIL == 177, "");
_Static_assert(KC_MSEL == 175, "");
_Static_assert(KC_MYCM == 179, "");
_Static_assert(KC_WSCH == 180, "");
_Static_assert(KC_WHOM == 181, "");
_Static_assert(KC_WBAK == 182, "");
_Static_assert(KC_WFWD == 183, "");
_Static_assert(KC_WSTP == 184, "");
_Static_assert(KC_WREF == 185, "");
_Static_assert(KC_WFAV == 186, "");
_Static_assert(KC_BRIU == 189, "");
_Static_assert(KC_BRID == 190, "");
_Static_assert(KC_MPRV == 172, "");
_Static_assert(KC_MNXT == 171, "");
_Static_assert(KC_MUTE == 168, "");
_Static_assert(KC_VOLD == 170, "");
_Static_assert(KC_VOLU == 169, "");
_Static_assert(KC_MSTP == 173, "");
_Static_assert(KC_MPLY == 174, "");
_Static_assert(KC_MRWD == 188, "");
_Static_assert(KC_MFFD == 187, "");
_Static_assert(KC_EJCT == 176, "");
_Static_assert(KC_MS_U == 240, "");
_Static_assert(KC_MS_D == 241, "");
_Static_assert(KC_MS_L == 242, "");
_Static_assert(KC_MS_R == 243, "");
_Static_assert(KC_BTN1 == 244, "");
_Static_assert(KC_BTN2 == 245, "");
_Static_assert(KC_BTN3 == 246, "");
_Static_assert(KC_BTN4 == 247, "");
_Static_assert(KC_BTN5 == 248, "");
_Static_assert(KC_WH_U == 249, "");
_Static_assert(KC_WH_D == 250, "");
_Static_assert(KC_WH_L == 251, "");
_Static_assert(KC_WH_R == 252, "");
_Static_assert(KC_ACL0 == 253, "");
_Static_assert(KC_ACL1 == 254, "");
_Static_assert(KC_ACL2 == 255, "");
_Static_assert(KC_LCAP == 130, "");
_Static_assert(KC_LNUM == 131, "");
_Static_assert(KC_LSCR == 132, "");

_Static_assert(FN_MO13 == 0x5F10, "");
_Static_assert(FN_MO23 == 0x5F11, "");

_Static_assert(MACRO00 == 0x5F12, "");
_Static_assert(MACRO01 == 0x5F13, "");
_Static_assert(MACRO02 == 0x5F14, "");
_Static_assert(MACRO03 == 0x5F15, "");
_Static_assert(MACRO04 == 0x5F16, "");
_Static_assert(MACRO05 == 0x5F17, "");
_Static_assert(MACRO06 == 0x5F18, "");
_Static_assert(MACRO07 == 0x5F19, "");
_Static_assert(MACRO08 == 0x5F1A, "");
_Static_assert(MACRO09 == 0x5F1B, "");
_Static_assert(MACRO10 == 0x5F1C, "");
_Static_assert(MACRO11 == 0x5F1D, "");
_Static_assert(MACRO12 == 0x5F1E, "");
_Static_assert(MACRO13 == 0x5F1F, "");
_Static_assert(MACRO14 == 0x5F20, "");
_Static_assert(MACRO15 == 0x5F21, "");

_Static_assert(USER00 == 0x5F80, "");
_Static_assert(USER01 == 0x5F81, "");
_Static_assert(USER02 == 0x5F82, "");
_Static_assert(USER03 == 0x5F83, "");
_Static_assert(USER04 == 0x5F84, "");
_Static_assert(USER05 == 0x5F85, "");
_Static_assert(USER06 == 0x5F86, "");
_Static_assert(USER07 == 0x5F87, "");
_Static_assert(USER08 == 0x5F88, "");
_Static_assert(USER09 == 0x5F89, "");
_Static_assert(USER10 == 0x5F8A, "");
_Static_assert(USER11 == 0x5F8B, "");
_Static_assert(USER12 == 0x5F8C, "");
_Static_assert(USER13 == 0x5F8D, "");
_Static_assert(USER14 == 0x5F8E, "");
_Static_assert(USER15 == 0x5F8F, "");

_Static_assert(KC_POWER == 102, "");
_Static_assert(KC_MENU == 118, "");
_Static_assert(KC_KP_EQUAL_AS400 == 134, "");
_Static_assert(KC_INT6 == 140, "");
_Static_assert(KC_INT7 == 141, "");
_Static_assert(KC_INT8 == 142, "");
_Static_assert(KC_INT9 == 143, "");
_Static_assert(KC_LANG3 == 146, "");
_Static_assert(KC_LANG4 == 147, "");
_Static_assert(KC_LANG5 == 148, "");
_Static_assert(KC_LANG6 == 149, "");
_Static_assert(KC_LANG7 == 150, "");
_Static_assert(KC_LANG8 == 151, "");
_Static_assert(KC_LANG9 == 152, "");
_Static_assert(KC_ERAS == 153, "");
_Static_assert(KC_SYSREQ == 154, "");
_Static_assert(KC_CANCEL == 155, "");
_Static_assert(KC_CLEAR == 156, "");
_Static_assert(KC_CLR == 156, "");
_Static_assert(KC_PRIOR == 157, "");
_Static_assert(KC_OUT == 160, "");
_Static_assert(KC_OPER == 161, "");
_Static_assert(KC_CLEAR_AGAIN == 162, "");
_Static_assert(KC_CRSEL == 163, "");
_Static_assert(KC_EXSEL == 164, "");
_Static_assert(KC_FN0 == 192, "");
_Static_assert(KC_FN1 == 193, "");
_Static_assert(KC_FN2 == 194, "");
_Static_assert(KC_FN3 == 195, "");
_Static_assert(KC_FN4 == 196, "");
_Static_assert(KC_FN5 == 197, "");
_Static_assert(KC_FN6 == 198, "");
_Static_assert(KC_FN7 == 199, "");
_Static_assert(KC_FN8 == 200, "");
_Static_assert(KC_FN9 == 201, "");
_Static_assert(KC_FN10 == 202, "");
_Static_assert(KC_FN11 == 203, "");
_Static_assert(KC_FN12 == 204, "");
_Static_assert(KC_FN13 == 205, "");
_Static_assert(KC_FN14 == 206, "");
_Static_assert(KC_FN15 == 207, "");
_Static_assert(KC_FN16 == 208, "");
_Static_assert(KC_FN17 == 209, "");
_Static_assert(KC_FN18 == 210, "");
_Static_assert(KC_FN19 == 211, "");
_Static_assert(KC_FN20 == 212, "");
_Static_assert(KC_FN21 == 213, "");
_Static_assert(KC_FN22 == 214, "");
_Static_assert(KC_FN23 == 215, "");
_Static_assert(KC_FN24 == 216, "");
_Static_assert(KC_FN25 == 217, "");
_Static_assert(KC_FN26 == 218, "");
_Static_assert(KC_FN27 == 219, "");
_Static_assert(KC_FN28 == 220, "");
_Static_assert(KC_FN29 == 221, "");
_Static_assert(KC_FN30 == 222, "");
_Static_assert(KC_FN31 == 223, "");
_Static_assert(RESET == 23552, "");
_Static_assert(DEBUG == 23553, "");
_Static_assert(MAGIC_TOGGLE_NKRO == 23572, "");
_Static_assert(AU_ON == 23581, "");
_Static_assert(AU_OFF == 23582, "");
_Static_assert(AU_TOG == 23583, "");
_Static_assert(CLICKY_TOGGLE == 23584, "");
_Static_assert(CLICKY_ENABLE == 23585, "");
_Static_assert(CLICKY_DISABLE == 23586, "");
_Static_assert(CLICKY_UP == 23587, "");
_Static_assert(CLICKY_DOWN == 23588, "");
_Static_assert(CLICKY_RESET == 23589, "");
_Static_assert(MU_ON == 23590, "");
_Static_assert(MU_OFF == 23591, "");
_Static_assert(MU_TOG == 23592, "");
_Static_assert(MU_MOD == 23593, "");

#endif