#pragma once

#define _LIBCPP_ABI_VERSION 1
#define _LIBCPP_ABI_NAMESPACE __y1

#define _LIBCPP_PSTL_BACKEND_STD_THREAD

#ifndef _YNDX_LIBCPP_ENABLE_EXTENSIONS
#   define _YNDX_LIBCPP_ENABLE_EXTENSIONS 1
#endif

#if _YNDX_LIBCPP_ENABLE_EXTENSIONS == 1
#   define _YNDX_LIBCXX_ENABLE_STRING_RESIZE_UNINITIALIZED 1
#   define _YNDX_LIBCXX_ENABLE_VECTOR_BOOL_COMPRESSION 0
#   define _YNDX_LIBCXX_ENABLE_VECTOR_POD_RESIZE_UNINITIALIZED 1
#else
#   define _YNDX_LIBCXX_ENABLE_STRING_RESIZE_UNINITIALIZED 0
#   define _YNDX_LIBCXX_ENABLE_VECTOR_BOOL_COMPRESSION 1
#   define _YNDX_LIBCXX_ENABLE_VECTOR_POD_RESIZE_UNINITIALIZED 0
#endif

#if _YNDX_LIBCPP_ENABLE_EXTENSIONS == 1 && (!defined(_LIBCPP_DEBUG) || _LIBCPP_DEBUG == 0)
#   define _YNDX_LIBCPP_MAKE_VECTOR_ITERATOR_POINTERS  1
#   define _YNDX_LIBCPP_MAKE_STRING_ITERATOR_POINTERS  1
#else
#   define _YNDX_LIBCPP_MAKE_VECTOR_ITERATOR_POINTERS  0
#   define _YNDX_LIBCPP_MAKE_STRING_ITERATOR_POINTERS  0
#endif

#define _YNDX_LIBCPP_DISABLE_CHARS_FLOATING_POINT 1

#define _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS
#define _LIBCPP_NO_AUTO_LINK
#define _LIBCPP_DISABLE_DEPRECATION_WARNINGS
#define _LIBCPP_DISABLE_AVAILABILITY

// should be removed in https://st.yandex-team.ru/IGNIETFERRO-1957
#define _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR
#define _LIBCPP_ENABLE_CXX17_REMOVED_BINDERS
#define _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE
#define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION

// should be removed in https://st.yandex-team.ru/IGNIETFERRO-1955
#define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS
#define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_VOID_SPECIALIZATION
#define _LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST

// should be removed in https://st.yandex-team.ru/IGNIETFERRO-1956
#define _LIBCPP_ENABLE_CXX20_REMOVED_TYPE_TRAITS
#define _LIBCPP_REMOVE_TRANSITIVE_INCLUDES

#define _LIBCPP_NO_ASAN_CONTIGUOUS_CONTAINER_FEATURES

#define _LIBCPP_ENABLE_CXX20_REMOVED_SHARED_PTR_UNIQUE

#ifdef _musl_
#   define _LIBCPP_HAS_MUSL_LIBC 1
#endif

#if defined(__has_feature) && (__has_feature(address_sanitizer) || \
                               __has_feature(leak_sanitizer) || \
                               __has_feature(thread_sanitizer) || \
                               __has_feature(memory_sanitizer) || \
                               __has_feature(undefined_behavior_sanitizer))
#       define _LIBCPP_HARDENING_MODE_DEFAULT _LIBCPP_HARDENING_MODE_FAST
#elif defined(NDEBUG)
#       define _LIBCPP_HARDENING_MODE_DEFAULT _LIBCPP_HARDENING_MODE_NONE
#else
#   define _LIBCPP_HARDENING_MODE_DEFAULT _LIBCPP_HARDENING_MODE_FAST
#endif

#if defined(_WIN32) && defined(_MSC_VER)
#	define _WCHAR_H_CPLUSPLUS_98_CONFORMANCE_ 1
#endif

#define _LIBCPP_HAS_THREADS 1
#define _LIBCPP_HAS_MONOTONIC_CLOCK 1
#define _LIBCPP_HAS_FILESYSTEM 1
#define _LIBCPP_HAS_LOCALIZATION 1
#define _LIBCPP_HAS_RANDOM_DEVICE 1
#define _LIBCPP_HAS_TIME_ZONE_DATABASE 1
#define _LIBCPP_HAS_WIDE_CHARACTERS 1
