/* Generated by ./xlat/gen.sh from ./xlat/key_reqkeys.in; do not edit. */

static const struct xlat key_reqkeys[] = {
#if defined(KEY_REQKEY_DEFL_NO_CHANGE) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE) && HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE)
	XLAT(KEY_REQKEY_DEFL_NO_CHANGE),
#endif
#if defined(KEY_REQKEY_DEFL_DEFAULT) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT) && HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT)
	XLAT(KEY_REQKEY_DEFL_DEFAULT),
#endif
#if defined(KEY_REQKEY_DEFL_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING)
	XLAT(KEY_REQKEY_DEFL_THREAD_KEYRING),
#endif
#if defined(KEY_REQKEY_DEFL_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING)
	XLAT(KEY_REQKEY_DEFL_PROCESS_KEYRING),
#endif
#if defined(KEY_REQKEY_DEFL_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING)
	XLAT(KEY_REQKEY_DEFL_SESSION_KEYRING),
#endif
#if defined(KEY_REQKEY_DEFL_USER_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING)
	XLAT(KEY_REQKEY_DEFL_USER_KEYRING),
#endif
#if defined(KEY_REQKEY_DEFL_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING)
	XLAT(KEY_REQKEY_DEFL_USER_SESSION_KEYRING),
#endif
#if defined(KEY_REQKEY_DEFL_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING)
	XLAT(KEY_REQKEY_DEFL_GROUP_KEYRING),
#endif
#if defined(KEY_REQKEY_DEFL_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING)
	XLAT(KEY_REQKEY_DEFL_REQUESTOR_KEYRING),
#endif
	XLAT_END
};
